<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<style id='style'>
@namespace tns url(test-namespace);
@media all {}
</style>
<body></body>
<script>
function assertColorGreen(id) {
  var element = document.createElementNS('test-namespace', 'tns:div');
  element.id = id;
  element.setAttributeNS('test-namespace', 'tns:green', true);
  document.body.appendChild(element);
  assert_equals(getComputedStyle(element).color, 'rgb(0, 128, 0)');
}

test(function() {
  style.sheet.insertRule('tns|*#testInsertRule[tns|green] { color: green; }', style.sheet.cssRules.length);
  assertColorGreen('testInsertRule');
}, 'Selectors added to CSSStyleSheets via insertRule() should use the @namespace mapping');

test(function() {
  var mediaRule = style.sheet.rules[1];
  console.assert(mediaRule instanceof CSSMediaRule); // CSSMediaRule inherits from the CSSGroupingRule interface.
  mediaRule.insertRule('tns|*#testMediaInsertRule[tns|green] { color: green; }', style.sheet.length);
  assertColorGreen('testMediaInsertRule');
}, 'Selectors added to CSSGroupingRules via insertRule() should use the @namespace mapping');
</script>
